<?php
class ProductoresController extends AppController 
{
	var $name = 'Productores';
	var $layout =  "ajax";
	var $components = array('Interfaz','Vista');
	var $helpers = array('Interfaz','Vista','Ayuda');
	var $uses = array('Productor',);
	public function beforeFilter(){
  		$this->validar();
  	}
  	
 	function index()
	{
 	}

 	public function listado_productor($busq=null) {
		
 		$busq = (strpos($busq, 'menuadmin') === false) ? $busq : null; 			
		$this->set('busq',$busq);
 		$this->permisos_menu_individual('productor');
 		//$tipo_usuario=$this->Interfaz->id($this->Session->read('tipo_usuario'));
		//$tienda_id=$this->Interfaz->id($this->Session->read('tienda_id'));
		$total=$this->Productor->find('count',array('conditions'=> array("Productor.id >"=>'0')));
		$data=$this->Productor->find('all',array('conditions'=> array("Productor.id >"=>'0'),'limit'=>MAX_PAGI));
		if($total>MAX_PAGI) $mos=MAX_PAGI;
		else $mos=$total;
		$this->set('data',$data);
		$this->Vista->title('Listado de Productores Encontrados (Mostrando '.$mos.' de '.$total.' Registros Encontrados)');
		//$this->log(1);
	}

	public function nuevo($div='vista',$divlistado='vista') 
	{	
		$this->permisos_accion_individual('productor','nuevo'); // mensaje que se quiere mostrar		
	}

	public function guardar() {
		$this->permisos_accion_individual('productor','nuevo'); // mensaje que se quiere mostrar
		$data=$this->request->data;
		if(!$this->Vista->empyt($data,array('telf','cel','direccion'))){
			extract($data);
			$cedrif=$this->Interfaz->cedula_formateada($this->Utilitario->mayuscula($cedrif));
			if(!$this->Vista->verifica('Productor','ced_rif',$cedrif,'cedrif')){
				$this->Productor->query('BEGIN WORK');
				$dPro['Productor']['nombre']=$this->Interfaz->mayuscula($nombre);
				$dPro['Productor']['ced_rif']=$cedrif;
				if(isset($telf))$dPro['Productor']['telefono']=$telf;
				if(isset($cel))$dPro['Productor']['celular']=$cel;
				if(isset($direccion))$dPro['Productor']['direccion']=$direccion;

				if($this->Productor->save($dPro)){
					$this->Vista->mensaje("Productor Guardado Exitosamente!!!",'EXITO');
					$this->Productor->query('COMMIT');
					$this->log();
					$this->Vista->cerrar_ventana($vent_nuevo_deuda);
				}
				else{
					$this->Vista->mensaje("Ocurrio un error Guardando deuda",'ERROR','ced_rif');
					$this->Productor->query('ROLLBACK');	
				}	
			}
			else{
				$this->Vista->mensaje("Cedula o Rif del Productor ya existe!!!",'ERROR');
			}				
		}
		else{
			$this->Vista->mensaje("Faltan datos requeridos!!!",'ERROR');
		}
		$this->listado_productor();
		$this->render("listado_productor");
	}

	public function ver_datos($ver=1,$id=null)
	{
		if($ver==1) $this->permisos_opcion_individual('productor','estatus','ver');
		else $this->permisos_opcion_individual('productor','estatus','modificar');
		$id=$this->Interfaz->id($id);
		if(is_numeric($id)){
			$data= $this->Productor->find('first', array('conditions'=>array('Productor.id'=> $id)));
			$this->set('data',$data);$this->set('ver',$ver);
		}
		else{
			$tnis->vista->mensaje("estas tratando de violar la seguridad de agropatria","ERROR");
			$this->render("../".PRINCIPAL."/mensajes");
		}
	}

	public function modificar() {
		$this->permisos_opcion_individual('productor','estatus','modificar'); // mensaje que se quiere mostrar
		$data=$this->request->data;
		if(!$this->Vista->empyt($data,array('telf','cel','direccion'))){
			extract($data);
			$id_pro=$this->Interfaz->id($id_productor);
			$cedrif=$this->Interfaz->mayuscula($cedrif);
			if(is_numeric($id_pro)){
				if(!$this->Vista->verifica('Productor','ced_rif',$cedrif,'cedrif',$id_pro)){
					$this->Productor->query('BEGIN WORK');
					$dPro['Productor']['id']=$this->Interfaz->id($id_productor);
					$dPro['Productor']['nombre']=$this->Interfaz->mayuscula($nombre);
					$dPro['Productor']['ced_rif']=$this->Interfaz->cedulasinguion($cedrif);
					if(isset($telf))$dPro['Productor']['telefono']=$telf;
					if(isset($cel))$dPro['Productor']['celular']=$cel;
					if(isset($direccion))$dPro['Productor']['direccion']=$direccion;

					if($this->Productor->save($dPro)){
						$this->Vista->mensaje("Productor Guardado Exitosamente!!!",'EXITO');
						$this->Productor->query('COMMIT');
						$this->log();
						//$this->Vista->cerrar_ventana($vent_nuevo_deuda);
					}
					else{
						$this->Vista->mensaje("Ocurrio un error Guardando deuda",'ERROR','ced_rif');
						$this->Productor->query('ROLLBACK');	
					}	
				}
				else{
					$this->Vista->mensaje("Cedula o Rif del Productor ya existe!!!",'ERROR');
				}
			}
			else{
				$this->Vista->mensaje("Estas tratando de violar la seguridad agropatria!!!",'ERROR');
			}		
		}
		else{
			$this->Vista->mensaje("Faltan datos requeridos!!!",'ERROR');
		}
		$this->listado_productor();
		$this->render("listado_productor");
	}

	public function cambiar_estatus($id=null,$esta=1)
	{
		$this->permisos_opcion_individual('productor','estatus','eliminar');
		if(isset($id)){
			$id=$this->Interfaz->id($id);
			if(is_numeric($id)){
				$data= $this->Productor->find('first', array('conditions'=>array('Productor.id'=> $id)));
				$esta= ($data['Productor']['estatus']==1) ? 0 : 1;
				$msj= ($data['Productor']['estatus']==1) ? 'Inactivado' : 'Activado';
				$pro['Productor']['id']=$id;
				$pro['Productor']['estatus']=$esta;
				if($this->Productor->save($pro)){
					$this->Vista->mensaje("Productor  $msj Exitosamente!!!",'EXITO');
					$this->Productor->query('COMMIT');
					$this->set('esta',$esta);
					$this->log();
					//$this->Vista->cerrar_ventana($vent_nuevo_deuda);
				}
				else{
					$this->Vista->mensaje("Ocurrio un error Guardando Productor",'ERROR','ced_rif');
					$this->Productor->query('ROLLBACK');	
				}
			}
			else{
				$tnis->vista->mensaje("estas tratando de violar la seguridad de agropatria","ERROR");
				$this->render("../".PRINCIPAL."/mensajes");
			}
		}
		else{
			$tnis->vista->mensaje("estas tratando de violar la seguridad de agropatria","ERROR");
			$this->render("../".PRINCIPAL."/mensajes");
		}	
	}

	public function filtrado_productores() {
		
	}

	public function listado_filtrado_productores() {
		$this->permisos_menu_individual('productor');
		$opcion=$this->request->data;
		extract($opcion);
		$condiciones['Productor.id >']= 0;
		if(!empty($direccion)){ $condiciones['Productor.direccion ilike']= "%$direccion%"; $busq=$direccion;}
		if(!empty($cedrif)){
			$condiciones['Productor.ced_rif ilike']= "%$cedrif%";
			$busq=$cedrif;
		} 
		if(!empty($nombre)){ $condiciones['Productor.nombre ilike']= "%$nombre%"; $busq=$nombre;}
		
		$opciones=$this->serializador($opcion,2);
		$total=$this->Productor->find('count',array('conditions'=> $condiciones));
		$data=$this->Productor->find('all',array('conditions'=> $condiciones,'limit'=>MAX_PAGI));
		if($total>MAX_PAGI) $mos=MAX_PAGI;
		else $mos=$total;
		$this->set('data',$data);$this->set('opciones',$opciones); $this->set('busq',$busq);
		$this->Vista->title('Listado de Productores Encontrados (Mostrando '.$mos.' de '.$total.' Registros Encontrados)');
		
	}

	public function validar_productor($cedrif=null,$id=null) {
		if(isset($cedrif)){
			$ced=$this->Interfaz->cedulasinguion($cedrif);
			if(isset($id)){ if(!is_numeric($id)) $id=$this->Interfaz->id($id);$this->Vista->verifica('Productor','ced_rif',$ced,'cedrif',$id);}
			else $this->Vista->verifica('Productor','ced_rif',$ced,'cedrif');
		}
		$this->render("../".PRINCIPAL."/mensajes");
	}

}